Benjamin Otte [Sat, 4 Aug 2018 09:01:32 +0000 (11:01 +0200)]
bindings: Split out function to invoke an action signal
We want to use that in shortcuts later.
Benjamin Otte [Mon, 30 Jul 2018 04:02:20 +0000 (06:02 +0200)]
shortcutcontroller: Introduce
This is a very barebones controller that currently does nothing but
activate the binding signals. Yay.
And because we have bindings on every widget (Yes, a GtkGrid has a
keybinding - 2 in fact), we need that controller everywhere.
Benjamin Otte [Tue, 31 Jul 2018 20:21:17 +0000 (22:21 +0200)]
bindings: Make gtk_binding_parse_signal() use GVariantBuilder
And because it's the last user of GtkBindingArg and
gtk_binding_entry_add_signall(), also remove those two.
Benjamin Otte [Tue, 31 Jul 2018 19:34:52 +0000 (21:34 +0200)]
bindings: Parse into GVariantBuilder directly
Avoids the indirection via GtkBindingArg
Benjamin Otte [Tue, 31 Jul 2018 19:32:34 +0000 (21:32 +0200)]
bindings: Add gtk_binding_entry_add_signal_variant()
This function is the replacement for
gtk_binding_entry_add_signall().
The GVariant will be demarshalled and passed to the action signal upon
binding activation. The same rules apply as used to apply for
GtkBindingArg, in that long, double and string args are now replaced by
"x", "d" and "s" variant types.
Benjamin Otte [Tue, 31 Jul 2018 18:09:03 +0000 (20:09 +0200)]
bindings: Replace GtkBindingArg arguments with GVariant
So far, this only replaces invocation, not yet parsing.
Matthias Clasen [Thu, 26 Mar 2020 02:30:54 +0000 (02:30 +0000)]
Merge branch 'matthiasc/for-master2' into 'master'
Matthiasc/for master2
See merge request GNOME/gtk!1568
Matthias Clasen [Thu, 26 Mar 2020 01:54:30 +0000 (01:54 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!1567
Emmanuele Bassi [Thu, 6 Feb 2020 15:00:02 +0000 (15:00 +0000)]
passwordentry: Remove unused include
Emmanuele Bassi [Thu, 6 Feb 2020 14:59:31 +0000 (14:59 +0000)]
entry: Remove unused include
Matthias Clasen [Thu, 19 Mar 2020 13:46:53 +0000 (09:46 -0400)]
text view: Fix touch selection
We forgot to allocated that popover.
Matthias Clasen [Sun, 15 Mar 2020 03:42:38 +0000 (23:42 -0400)]
event controller focus: drop include
This header is not needed here, and it is going away.
Matthias Clasen [Sun, 22 Mar 2020 17:19:55 +0000 (13:19 -0400)]
flattenlistmodel: Give access to child models
Add an api to retrieve the model containing a given
item in a flatten listmodel. This is useful when the
individual items in the list don't have backpointers.
Matthias Clasen [Wed, 25 Mar 2020 21:48:38 +0000 (21:48 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!1565
Matthias Clasen [Wed, 25 Mar 2020 21:34:56 +0000 (21:34 +0000)]
Merge branch 'wip/chergert/muxer-robustness-fix' into 'master'
muxer: force muxer dispoal as part of widget dispose
See merge request GNOME/gtk!1564
Matthias Clasen [Wed, 25 Mar 2020 20:01:06 +0000 (16:01 -0400)]
filechoosererrorstack: Fix object life-cycle
Unparent children in dispose, not in finalize.
Matthias Clasen [Wed, 25 Mar 2020 19:29:12 +0000 (15:29 -0400)]
testsuite: Set NO_AT_BRIDGE for gtk tests
The a11y stack insists on spewing hard to control warnings
that make our tests fail. So, no accessibility for gtk tests :(
Christian Hergert [Wed, 25 Mar 2020 21:02:59 +0000 (14:02 -0700)]
muxer: force muxer dispoal as part of widget dispose
We need to cleanup state here immediately so that we do not potentially
access the g_class private data after it been finalized. This ensures that
the borrowed reference is dropped by the muxer.
Timm Bäder [Wed, 25 Mar 2020 09:13:50 +0000 (09:13 +0000)]
Merge branch 'wip/sadiq/fix-leak' into 'master'
singleselection: Fix a memory leak
See merge request GNOME/gtk!1554
Timm Bäder [Sun, 22 Mar 2020 14:41:40 +0000 (15:41 +0100)]
magnifier: Don't try to use a null widget paintable
We destroy the paintable in dispose, which can be called multiple times.
Timm Bäder [Sun, 22 Mar 2020 14:41:21 +0000 (15:41 +0100)]
inspector: Fix child widget life cycle
unparent them in dispose
Timm Bäder [Tue, 24 Mar 2020 06:08:26 +0000 (06:08 +0000)]
Merge branch 'patch-2' into 'master'
gtkfilechoosernative: Remove duplicate "the" in the documentation
See merge request GNOME/gtk!1557
LingMan [Tue, 24 Mar 2020 04:58:13 +0000 (04:58 +0000)]
gtkfilechoosernative: Remove duplicate "the" in the documentation
Marc-Antoine Perennou [Sun, 22 Mar 2020 09:53:59 +0000 (10:53 +0100)]
testsuite/gtk/flattenlistmodel.c: fix build
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
Mohammed Sadiq [Sun, 22 Mar 2020 05:12:01 +0000 (10:42 +0530)]
singleselection: Fix a memory leak
Matthias Clasen [Sun, 22 Mar 2020 00:38:56 +0000 (20:38 -0400)]
3.98.1
Matthias Clasen [Sun, 22 Mar 2020 01:06:35 +0000 (21:06 -0400)]
a11y: Don't re turn uninitialized memory
For some reason, this was now showing up in the
a11y tests as random image sizes in the about
dialog test.
Matthias Clasen [Sun, 22 Mar 2020 00:40:15 +0000 (00:40 +0000)]
Merge branch 'filechooser-popover-fixes' into 'master'
Filechooser popover fixes
See merge request GNOME/gtk!1553
Matthias Clasen [Sun, 22 Mar 2020 00:14:23 +0000 (20:14 -0400)]
file chooser: Fix the rename file popover
Make this popover work again by attaching it
to the file chooser itself.
Matthias Clasen [Sun, 22 Mar 2020 00:00:15 +0000 (20:00 -0400)]
filechooser: Fix the file list popover
Make this popover work again.
Matthias Clasen [Sat, 21 Mar 2020 23:32:08 +0000 (19:32 -0400)]
filechooser: Fix the new folder popover
We were listening for change notification on a
no-longer-existing property.
Matthias Clasen [Sat, 21 Mar 2020 22:28:57 +0000 (18:28 -0400)]
places sidebar: Fix the popovers
We need to check-resize the popovers.
Matthias Clasen [Sat, 21 Mar 2020 20:29:11 +0000 (20:29 +0000)]
Merge branch 'portal-dir-chooser' into 'master'
filechoosernativeportal: Allowing selecting folder(s)
See merge request GNOME/gtk!1552
Bastien Nocera [Fri, 13 Mar 2020 16:50:41 +0000 (17:50 +0100)]
filechoosernativeportal: Allowing selecting folder(s)
Use the "directory" portal option when asked to select folders.
Matthias Clasen [Sat, 21 Mar 2020 18:34:07 +0000 (18:34 +0000)]
Merge branch 'portal-chooser-fail' into 'master'
portal file chooser: Handle errors
Closes #2527
See merge request GNOME/gtk!1551
Matthias Clasen [Sat, 21 Mar 2020 17:06:10 +0000 (13:06 -0400)]
portal file chooser: Handle errors
Fall back to showing a local file chooser
if we get DBus errors from the portal.
Closes: #2527
Matthias Clasen [Sat, 21 Mar 2020 16:21:51 +0000 (16:21 +0000)]
Merge branch 'fix-inspector-picking' into 'master'
inspector: Make picking work again
Closes #2528
See merge request GNOME/gtk!1549
Matthias Clasen [Sat, 21 Mar 2020 14:47:29 +0000 (14:47 +0000)]
Merge branch 'fix-inspector-key' into 'master'
x11: Fix key event state translation
See merge request GNOME/gtk!1550
Matthias Clasen [Sat, 21 Mar 2020 14:25:06 +0000 (10:25 -0400)]
x11: Fix key event state translation
In the event refactoring, a bit was lost.
This makes Ctrl-Shift-i work again to open
the inspector.
Matthias Clasen [Sat, 21 Mar 2020 13:42:58 +0000 (09:42 -0400)]
inspector: Make picking work again
We used to either make the inspector see- and click-thru
or lower it, but sadly translucency broke after we
removed surface opacity, and lowering doesn't work
on Wayland. So just hide the inspector window while
we are picking.
Fixes: #2528
Matthias Clasen [Sat, 21 Mar 2020 05:56:22 +0000 (05:56 +0000)]
Merge branch 'new-text-attributes' into 'master'
New text attributes
See merge request GNOME/gtk!1547
Matthias Clasen [Sat, 21 Mar 2020 04:44:04 +0000 (00:44 -0400)]
Make overline support conditional
The ci image does not have Pango 1.45, so for the
time being, make the overline support conditional
on Pango being new enough.
Matthias Clasen [Sat, 21 Mar 2020 04:39:17 +0000 (00:39 -0400)]
Require pango 1.44.4
This lets use use the insert-hyphen attribute
unconditionally.
Matthias Clasen [Sat, 21 Mar 2020 03:51:36 +0000 (23:51 -0400)]
gtk-demo: Add hyphenation control to the markup demo
Matthias Clasen [Sat, 21 Mar 2020 03:51:08 +0000 (23:51 -0400)]
gtk-demo: Allow word breaking in the markup demo
We want to show hyphenation control here.
Matthias Clasen [Sat, 21 Mar 2020 03:56:41 +0000 (23:56 -0400)]
textbuffer: Parse overline and hyphenation attributes
When inserting Pango markup into a text buffer, translate
Pango attributes for overlines and hyphenation control
into the corresponding text tag properties.
Matthias Clasen [Sat, 21 Mar 2020 03:56:04 +0000 (23:56 -0400)]
textlayout: Handle new text tag properties
Translate tag properties for overlines and
hyphenation control into Pango attributes.
Matthias Clasen [Sat, 21 Mar 2020 03:54:39 +0000 (23:54 -0400)]
texttag: Support overline and hyphenation control
Add support for recently added Pango attributes
for overlines and hyphenation control. The new
properties of GtkTextTag are
overline, overline-rgba, allow-breaks, show-spaces
and insert-hyphens.
Carlos Garnacho [Fri, 20 Mar 2020 20:20:41 +0000 (20:20 +0000)]
Merge branch 'master_MR1290' into 'master'
Copy of !1290 for master
Closes #2365
See merge request GNOME/gtk!1546
Matthias Clasen [Fri, 20 Mar 2020 18:49:58 +0000 (18:49 +0000)]
Merge branch 'wip/chergert/fix-class-private-data-usage' into 'master'
Fix GtkWidgetClassPrivate data usage
See merge request GNOME/gtk!1545
Christian Hergert [Fri, 20 Mar 2020 16:22:29 +0000 (09:22 -0700)]
widget: fix class private data usage to be _init() safe
Before this commit, adding GtkWidgetAction to class private data would
require copying the actions to each subclass as they were built or
modified. This was convenient in that it is a sort of "copy on write"
semantic.
However, due to the way that GTypeInstance works with base _init()
functions, the "g_class" pointer in GTypeInstance is updated as each
_init() function is called. That means you cannot access the subclasses
class private data, but only the parent class private data.
If instead we use a singly linked list of GtkWidgetAction, each subclass
has their own "head" yet all subclasses share the tail of the
GtkWidgetAction chain.
This creates one bit of complexity though. You need a stable way to know
which "bit" is the "enabled" bit of the action so we can track enabled
GAction state. That is easily solved by calculating the distance to the
end of the chain for a given action so that base classes sort ahead of
subclasses. Since the parent class always knows its parent's actions, the
position is stable.
A new dynamic bitarray helper also helps us avoid allocations in all the
current cases (up to 64 actions per widget) and dynamically switches to
malloc if that is to ever be exceeded.
Christian Hergert [Fri, 20 Mar 2020 16:16:30 +0000 (09:16 -0700)]
widget: move class private data to gtkwidgetprivate.h
We want access to the private data from the action muxer so we can just
move the structures to the gtkwidgetprivate.h header. Alternatively we
could create accessors, but given that we'll probably need to use this
in other areas, seems reasonable to just put it there.
Matthias Clasen [Fri, 20 Mar 2020 18:12:09 +0000 (18:12 +0000)]
Merge branch 'test-protocol' into 'master'
Test protocol: TAP
See merge request GNOME/gtk!1543
Matthias Clasen [Fri, 20 Mar 2020 17:47:58 +0000 (13:47 -0400)]
testsuite: disable performance tests
For some reason, these tests are flaky in ci,
they always work locally for me. So, until
we use the data these tests produce for something,
lets just turn them off.
Matthias Clasen [Fri, 20 Mar 2020 17:29:17 +0000 (17:29 +0000)]
Merge branch 'wip/carlosg/text-handle-natives' into 'master'
Make text handles use native surfaces
See merge request GNOME/gtk!1487
Alexandr Miloslavskiy [Tue, 17 Dec 2019 11:44:33 +0000 (12:44 +0100)]
gkimmulticontext: Fix crash due to leaked signal handler
The problem is caused by gtk_im_multicontext_set_slave(), which forgets
to disconnect these signal handlers:
* gtk_im_multicontext_retrieve_surrounding_cb
* gtk_im_multicontext_delete_surrounding_cb
If slave GtkImContext emits signal after GtkIMMulticontext context is
destroyed, this leads to reading freed memory, sometimes causing a crash.
Fixes: #2365
Emmanuele Bassi [Fri, 20 Mar 2020 16:13:07 +0000 (16:13 +0000)]
Merge branch 'ci-dbus-launch' into 'master'
ci: Add dbus-launch to the Docker build
See merge request GNOME/gtk!1544
Matthias Clasen [Fri, 20 Mar 2020 16:09:21 +0000 (12:09 -0400)]
testsuite: Fix an a11y test
The derive test wasn't producing TAP, so
running it as part of a tap testsuite wasn't
going well. Fix that.
Matthias Clasen [Fri, 20 Mar 2020 13:39:56 +0000 (09:39 -0400)]
testsuite: Tell meson we use TAP
This makes meson actually parse the individual test
results. Most of the time, it does not make a difference,
but one case where it does is when all the individual
tests of a binary are skipped, meson will mark the
test as skipped.
Matthias Clasen [Fri, 20 Mar 2020 15:52:54 +0000 (11:52 -0400)]
reftests: Fix an xfail to work
The background-image-multiple.ref.ui file uses
non-existing properties, which gives us a g_warning,
and the glib test framework insists on treating
warnings as fatal, so we end up doing exit(133),
which in turn makes the meson TAP parser ignore
its xfails.
Comment out the nonexisting properties, so we can
fail properly, and then in turn xfail properly.
Matthias Clasen [Fri, 20 Mar 2020 15:43:51 +0000 (11:43 -0400)]
testsuite: Don't exit unsuccessfully when using TAP
The meson TAP parser doesn't take this lightly and
forgets all about xfails when we exit(1), so don't.
Emmanuele Bassi [Fri, 20 Mar 2020 15:36:39 +0000 (15:36 +0000)]
ci: Add dbus-launch to the Docker build
Carlos Garnacho [Fri, 20 Mar 2020 11:23:03 +0000 (12:23 +0100)]
gtktextview: Set magnifier popover on top
At the bottom, it sometimes has to fight for the same position than
text handles, besides might not be ergonomically convenient (eg.
finger/hand partly covering the popover). Move it at the top to fix
both.
Carlos Garnacho [Fri, 20 Mar 2020 11:20:54 +0000 (12:20 +0100)]
gtktext: Set magnifier popover on top
At the bottom, it sometimes has to fight for the same position than
text handles, besides might not be ergonomically convenient (eg.
finger/hand partly covering the popover). Move it at the top to fix
both.
Carlos Garnacho [Thu, 27 Feb 2020 17:08:46 +0000 (18:08 +0100)]
gtkpopover: Re-present surface if position/pointing-to change while visible
This ensures the popover will follow the new position parameters. This is
necessary for popovers like the text magnifier that can be repositioned
while visible.
Carlos Garnacho [Thu, 27 Feb 2020 17:07:38 +0000 (18:07 +0100)]
gtkpopover: Ensure the pointed to rectangle has a minimum w/h
On wayland, protocol errors will be raised if the rectangle width/height
are 0. Avoid that situation so it's valid to all popovers.
Carlos Garnacho [Mon, 3 Feb 2020 20:52:43 +0000 (21:52 +0100)]
gtkwindow: Remove internal popover API
This was only used by text handles, and not anymore.
Carlos Garnacho [Mon, 3 Feb 2020 14:59:49 +0000 (15:59 +0100)]
gtktexthandle: Refactor and use native surfaces
Instead of being a GObject managing two GtkWidgets, make GtkTextHandle
a GtkWidget subclass, representing a single handle.
From the perspective of users (GtkText and GtkTextView), this is not a
big leap since they have to be aware of a great deal of text handles'
state. It actually makes things more direct and simple.
With text handles being widgets, those can be actual children of the
widget, and may have their own GdkSurface that we move around at will.
This is the second major aspect of this refactor.
Matthias Clasen [Fri, 20 Mar 2020 14:42:52 +0000 (10:42 -0400)]
reftests: Don't run tests with --verbose
Unexpected output tends to break TAP.
Matthias Clasen [Fri, 20 Mar 2020 14:25:14 +0000 (10:25 -0400)]
gsk: Don't unconditionally spew to stdout
Matthias Clasen [Fri, 20 Mar 2020 13:39:35 +0000 (09:39 -0400)]
testsuite: Don't g_print from tests
This breaks the TAP output.
Matthias Clasen [Fri, 20 Mar 2020 12:33:21 +0000 (08:33 -0400)]
testsuite: Fix the accessible test
This test was happily doing nothing.
Matthias Clasen [Fri, 20 Mar 2020 13:42:38 +0000 (13:42 +0000)]
Merge branch 'disable-window-test-2' into 'master'
Disable window test 2
See merge request GNOME/gtk!1541
Matthias Clasen [Thu, 19 Mar 2020 15:25:38 +0000 (11:25 -0400)]
temporarily disable window test
This test was broken by the GdkToplevel refactoring,
and needs a big gtkwindow.c configure request cleanup
before it will work again.
Matthias Clasen [Thu, 19 Mar 2020 22:03:16 +0000 (18:03 -0400)]
Revert "Merge branch 'disable-window-test' into 'master'"
This reverts commit
3ac4c76b18cc89a841ce09f0943539f16988fd21, reversing
changes made to
6ec96d2e989d029a303b8b20ec72b86f974c0e87.
Matthias Clasen [Thu, 19 Mar 2020 19:35:42 +0000 (19:35 +0000)]
Merge branch 'disable-window-test' into 'master'
Disable window test
See merge request GNOME/gtk!1540
Matthias Clasen [Thu, 19 Mar 2020 18:29:37 +0000 (14:29 -0400)]
Fix the action test
We have a test that enumerates the GtkText actions,
so when a new open appears, the test needs to be updated.
Matthias Clasen [Thu, 19 Mar 2020 18:13:26 +0000 (14:13 -0400)]
Fix a compiler warning
Matthias Clasen [Thu, 19 Mar 2020 15:25:38 +0000 (11:25 -0400)]
temporarily disable window test
This test was broken by the GdkToplevel refactoring,
and needs a big gtkwindow.c configure request cleanup
before it will work again.
Matthias Clasen [Thu, 19 Mar 2020 13:46:53 +0000 (09:46 -0400)]
text view: Fix touch selection
We forgot to allocated that popover.
Matthias Clasen [Thu, 19 Mar 2020 04:56:46 +0000 (00:56 -0400)]
widget: Drop the ::popup-menu signal
This is now done in widgets which have context
menus.
Matthias Clasen [Thu, 19 Mar 2020 04:52:05 +0000 (00:52 -0400)]
placesview: Stop using ::popup-menu
This signal is going away.
Matthias Clasen [Thu, 19 Mar 2020 04:07:45 +0000 (00:07 -0400)]
filechooser: Stop using ::popup-menu
This signal is going away.
Matthias Clasen [Thu, 19 Mar 2020 02:56:53 +0000 (22:56 -0400)]
mountoperation: Stop using ::popup-menu
We can just use a shortcut controller directly.
Matthias Clasen [Thu, 19 Mar 2020 02:40:13 +0000 (22:40 -0400)]
gtk-demo: Stop emitting ::popup-menu
The signal was not used anyway, in the font explorer demo.
Matthias Clasen [Thu, 19 Mar 2020 02:36:31 +0000 (22:36 -0400)]
colorchooser: Stop using ::popup-menu
This signal is going away. Use an action instead.
Matthias Clasen [Thu, 19 Mar 2020 01:57:51 +0000 (21:57 -0400)]
range: Remove ::popup-menu emission
This signal is going away, and having context menus
on sliders is not really a thing anyway.
Matthias Clasen [Thu, 19 Mar 2020 01:55:08 +0000 (21:55 -0400)]
scrollbar: Remove :popup-menu forwarding
This signal is going away.
Matthias Clasen [Wed, 18 Mar 2020 20:52:52 +0000 (16:52 -0400)]
emojichooser: Stop using ::popup-menu
This signal is going away. Use an action instead.
Matthias Clasen [Mon, 16 Mar 2020 02:25:09 +0000 (22:25 -0400)]
Use an action for the context menu keybinding
The ::popup-menu signal is going away.
Matthias Clasen [Mon, 16 Mar 2020 02:10:39 +0000 (22:10 -0400)]
Print mnemonic triggers clearly
Matthias Clasen [Mon, 16 Mar 2020 00:48:31 +0000 (20:48 -0400)]
inspector: Show shortcuts
At a tab that lists the shortcuts contained in a
GtkShortcutController.
Matthias Clasen [Sun, 15 Mar 2020 22:24:52 +0000 (18:24 -0400)]
Only create a class shortcut controller if we have shortcuts
No point in creating objects that just hold empty lists.
Matthias Clasen [Sun, 15 Mar 2020 22:20:58 +0000 (18:20 -0400)]
widget: Name the controllers
Matthias Clasen [Sun, 15 Mar 2020 22:20:40 +0000 (18:20 -0400)]
window: Name the the controllers
Matthias Clasen [Sun, 15 Mar 2020 22:20:24 +0000 (18:20 -0400)]
shortcutmanager: Name the controllers
This is helpful in the inspector.
Matthias Clasen [Sun, 15 Mar 2020 21:38:56 +0000 (17:38 -0400)]
Move shortcut manager initialization code
It is just too ugly to use quarks across multiple
source files, so add a private helper function that
attaches the controllers.
Benjamin Otte [Sun, 26 Aug 2018 16:39:51 +0000 (18:39 +0200)]
filechooser: Trigger the location popup via bindings
Simplifies code quite a bit.
Benjamin Otte [Fri, 24 Aug 2018 06:46:54 +0000 (08:46 +0200)]
accels: Remove GtkAccelGroup
Benjamin Otte [Fri, 24 Aug 2018 05:41:28 +0000 (07:41 +0200)]
testmenubutton: Don't create a GtkAccelGroup
It's unused.